Web Apps integration
Status
Web Apps Integration to Desktop | |
Stage | Landed |
Status | In progress |
Release target | Firefox 15 |
Health | OK |
Status note | Feature landed in Firefox 15 and is currently on in the Aurora channel. There are several outstanding bugs. (See implementation section.) Will reassess whether to enable/disable this feature before Firefox 15 beta based on feedback from Aurora cycle. |
Team
Product manager | Asa Dotzler / Chris Lee / Ragavan Srinivasan |
Directly Responsible Individual | Lawrence Mandel |
Lead engineer | Felipe Gomes |
Security lead | ` |
Privacy lead | ` |
Localization lead | ` |
Accessibility lead | ` |
QA lead | Jason Smith |
UX lead | Bryan Clark / Brian Dils |
Product marketing lead | ` |
Operations lead | ` |
Additional members | Dietrich Ayala / Tim Taubert |
Open issues/risks
- Current Blocking Issues
- Need to figure out testing situation for the install procedure and the webapp runtime
- Need icon/URL for about:home
- New about:home bounced in fx-team
- UX polish needed for install UI.
- UX decision needed: Post install message tells user where the app was installed OR the OS can show the user where the app was installed (or both?)
- Needs decision or clarification from Apps/Product/UX (ALL ANSWERED)
- Need specification for what Firefox needs to do to install an app on Mac from Apps team. Tim/Dan/Myk putting it here: https://github.com/michaelrhanson/mozilla-central/blob/master/webapprt/README.md.
- UX (Boriss) has confirmed that there will not be a permanently visible Home Tab. Does this alter the user stories below? Do any assumptions by Product or Apps need to be re-evaluated in light of this?
A: (JA) We will only keep the link to the market place on the home tab for FF13.
- Should we open the dashboard after app install? Myk said "The doorhanger prompt seems reasonable and consistent with existing Firefox prompts for similar activities. But opening the dashboard isn't necessarily the right thing to do next. In the addon it feels clunky. It would be good to specify something else here."
A: (JA) No. There is not dashboard because we are cutting Sync.
- What is the default app opening behavior? Open as app tab? Open full-screen? Customizable? If the app is already open, open new one or activate the existing one?
A: (JA) The app is only installed natively so native is the only way to open. If app already open it should reactivate the open app window.
- About "Manual Install button on page that triggers Firefox install flow". Myk asked "Does it mean Firefox would add a button to the content of a page that offers an addon? Or simply that a page can display UI for installing an addon? The former feels underspecified and raises thorny questions that someone from the UX team should work through. The latter is just the natural consequence of having the mozapps API."
A: (JA) Do not understand this question. Feels out of scope.
- "App launchers must be able to update their appearance" - This is a web-side feature, so doesn't belong here, correct?
A: (JA) Not sure why appearances would need to be updated, but either way we're not building that now. So it does not belong here.
- "Apps should be able to run offline when possible" - Apps can use all the same offline features that the web platform offers. Is there any additional work to be done here?
A: (JA) - I do not see any additional work here. As long as an app that is designed to work offline can we're good.
- All of the uninstall features seem to be either web-side (launcher page) or WebRT side (OS uninstall support). Is there anything in Firefox UI that needs to be done to support these?
A: (JA) - Nope
- Data will be stored locally and synced to app once connectivity is available. Is this the apps' job to do the Syncing?
A: (DA) - Apps must listen for online/offline events, and sync their data as necessary on their own. There's no Web platform feature for automatically syncing data at this time.
- Recent Changes
- All permissions features are punted for now. Needs more UX and specification work done. Using standard web permissions model (prompt-on-access) as a normal tab.
- Removed "use and re-engagement" bit about Home Tab updates when apps aren't loaded, and prompting user while browsing.
Stage 1: Definition
1. Feature overview
- App Discovery
- Through link to app store on Home tab
- App Management
- Users can only install Apps to their OS default install locations.
- Users can uninstall Apps from the OS uninstall mechanism.
- Important Apps Dates
- Developer Preview: Dec 14
- Beta Release: Mar '12
- GA Release: end Q2
2. Users & use cases
- User Stories
User: Alice is a desktop Firefox user.
- Prioritized by (Win7, Mac OS X)
- Alice can install an app natively on Windows 7 from Firefox
- Alice can install an app natively on Mac OS X from Firefox
- Alice can launch an app through native means on a Windows7 desktop
- Alice can launch an app through native means on a Mac OS X desktop
- Alice can use an app that has an offline mode when there is no connectivity
- Alice can uninstall a natively installed app through native means on Windows 7
- Alice can uninstall a natively installed app through native means on Mac OS X
3. Dependencies
Platform and Apps work:
- -webapp mode (bug 725408)
- navigator.mozApps (bug 697383, LANDED)
- Add-on implementation: https://github.com/mozilla/openwebapps/tree/develop/addons/jetpack/lib
UX
- Mac & Win: The user is prompted if they are sure they want to install and perhaps some messaging as to where the app will be installed
- Mac & Win: Post-install message tells user where the app was installed or the OS can show the user where the app was installed
4. Requirements
- Discovery
- Firefox App Store launcher in the Home Tab
- Install Experience
- Install prompt is in Firefox chrome
- After install has been completed, the user is shown where the app can be found
- Launch Requirements
- Native launch works in Windows 7 and Mac OS X
- Offline Requirements
- Apps should be able to run offline in the same manner that Web apps are able to run offline
- Uninstall Requirements
- Uninstall from system uninstaller, appropriate to the OS
Non-goals
- See cut section for more details
- Discovery aside from within the Marketplace
- Apps in the Cloud
- Permissions model specific to apps. Apps will use same permissions model as web content in tabs currently does.
- Notifications of app updates on Home Tab, or prompts while browsing.
- Offline support other than what the Web platform provides.
Stage 2: Design
5. Functional specification
- Install Use Case - Windows 7
- From Home Tab click on Marketplace link
- Browse to and install an app
- The user is prompted if they are sure they want to install and perhaps some messaging as to where the app will be installed (UX to-do)
- User confirms app installation and app is installed into program files and start menu
- Post install message tells user where the app was installed or the OS can show the user where the app was installed (UX to-do)
- Install Use Case - Mac OS X
- From Home Tab click on Marketplace link
- Browse to and install an app
- The user is prompted if they are sure they want to install and perhaps some messaging as to where the app will be installed (UX to-do)
- User confirms app installation and app is installed natively into Apps folder
- Post install message tells user where the app was installed or the OS can show the user where the app was installed (UX to-do)
- Launch Use Case - Windows 7
- From Start Menu (or task bar or desktop shortcut) click app
- App launches into a full-screen, chromeless window
- Launch Use Case - Mac OS X
- From Apps folder (or desktop or dock shortcut) click app
- App launches into a full-screen, chromeless window
- Re-launch already opened app - Windows 7
- From Start Menu (or task bar or desktop shortcut) click app
- App window is refocused
- Re-launch already opened app - Mac OS X
- From Apps folder (or desktop or dock shortcut) click app
- App window is refocused
- Use an offline app - Windows 7/Mac OS X
- User is using an app with an offline mode and there is no connectivity
- It is up to the app to show UX about offline mode
- Uninstall - Windows 7
- Open Program and Features
- Select the app and click "Uninstall"
- Uninstall should clear any locally stored app data
- Uninstall - Mac OS X
- Drag the app to the Trash or select to put in the Trash
- Uninstall should clear any locally stored app data
6. User experience design
Mockups:
Stage 3: Planning
7. Implementation plan
`
8. Reviews
Security review
`
Privacy review
`
Localization review
`
Accessibility
`
Quality Assurance review
`
Operations review
`
Stage 4: Development
9. Implementation
Meta-bug: bug 731054
Open Tasks
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
Resolved Tasks
ID | Summary | Priority | Status |
---|---|---|---|
733631 | Unit test infrastructure for the webapp runtime | P1 | RESOLVED |
747645 | move webapp-uninstaller.properties to browser/locales/ to make it easier to localize | P1 | RESOLVED |
756308 | Implement MacWebAppUtils to allow callers to locate and manipulate native webapps on Mac | P1 | RESOLVED |
770771 | Implement WebappRT unit test framework on Windows | P1 | RESOLVED |
4 Total; 0 Open (0%); 4 Resolved (100%); 0 Verified (0%);
Verified Tasks
21 Total; 0 Open (0%); 0 Resolved (0%); 21 Verified (100%);
Stage 5: Release
10. Landing criteria
`
Open Tasks
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
Resolved Tasks
ID | Summary | Priority | Status |
---|---|---|---|
733631 | Unit test infrastructure for the webapp runtime | P1 | RESOLVED |
747645 | move webapp-uninstaller.properties to browser/locales/ to make it easier to localize | P1 | RESOLVED |
756308 | Implement MacWebAppUtils to allow callers to locate and manipulate native webapps on Mac | P1 | RESOLVED |
770771 | Implement WebappRT unit test framework on Windows | P1 | RESOLVED |
4 Total; 0 Open (0%); 4 Resolved (100%); 0 Verified (0%);
Verified Tasks
21 Total; 0 Open (0%); 0 Resolved (0%); 21 Verified (100%);
" contains strip markers and therefore it cannot be parsed sufficiently.Feature details
Priority | P1 |
Rank | 7 |
Theme / Goal | Discover |
Roadmap | Firefox Desktop |
Secondary roadmap | ` |
Feature list | Desktop |
Project | ` |
Engineering team | ` |
Team status notes
status | notes | |
Products | ` | ` |
Engineering | ` | ` |
Security | sec-review-needed | bsterne |
Privacy | ` | ` |
Localization | ` | ` |
Accessibility | ` | ` |
Quality assurance | In Progress | Test Plan |
User experience | ` | ` |
Product marketing | ` | ` |
Operations | ` | ` |
Cut List:
Overview
- App Discovery
- Through the app store.
- Personalized recommendations in the home tab.
- On the Web.
- App Management
- Users can install Apps to Firefox Home and optionally their OS default install locations.
- Users can only install Apps to their OS default install locations.
- Users can uninstall Apps from Firefox Home and/or the OS uninstall mechanism.
- Users can set individual permissions upon installation, and from the App itself. (CLARIFICATION NEEDED: Is this still a goal for v1?)
- Users can specify how Apps are opened.
Requirements
- Discovery
- Firefox "Recommended Apps" section of Home Tab
- Mechanism for Web sites to offer an App
- Manual Install button on page that triggers Firefox install flow (CLARIFICATION NEEDED: what does this mean? -DA)
- A separate Marketplace App
- Install Experience
- Install prompt lists all permissions the App wants, each one with a grant or deny
- Install prompt offers to place a launcher in appropriate OS locations
- Installation occurs when the "Install" button is clicked
- After install has been completed, the user is shown where the app can be found
- After install the app is launched (CLARIFICATION NEEDED: which is it, the above or this?)
- Permissions Requirements
- Permissions settings are per-App
- Permissions re-prompt at App launch as needed
- Global permissions manager
- Apps can register as protocol handlers
- Apps can add "open with" items to Firefox context menu
- Firefox decorates links openable by installed apps
- Apps open in chrome-less windows by default (customizable)
- Notification Requirements
- App launchers must be able to update their appearance
- Uninstall Requirements
- Uninstall from launcher page
- Provide option for per-app data to be retained